/*
 * 
 * 　　┏┓　　　┏┓+ +
 * 　┏┛┻━━━┛┻┓ + +
 * 　┃　　　　　　　┃ 　
 * 　┃　　　━　　　┃ ++ + + +
 *  ████━████ ┃+
 * 　┃　　　　　　　┃ +
 * 　┃　　　┻　　　┃
 * 　┃　　　　　　　┃ + +
 * 　┗━┓　　　┏━┛
 * 　　　┃　　　┃　　　　　　　　　　　
 * 　　　┃　　　┃ + + + +
 * 　　　┃　　　┃
 * 　　　┃　　　┃ +  神兽保佑
 * 　　　┃　　　┃    代码无bug　　
 * 　　　┃　　　┃　　+　　　　　　　　　
 * 　　　┃　 　　┗━━━┓ + +
 * 　　　┃ 　　　　　　　┣┓
 * 　　　┃ 　　　　　　　┏┛
 * 　　　┗┓┓┏━┳┓┏┛ + + + +
 * 　　　　┃┫┫　┃┫┫
 * 　　　　┗┻┛　┗┻┛+ + + +
 * 
 */
import { createApp } from "vue";
import App from "./App.vue";
// 路由
import router from "./router";
// Pinia
import { createPinia } from "pinia";
// ElementPlus
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
// 共用CSS
import "@/assets/css/base.less";
// api
import http from "./api/http";
// mitt
import mitt from "mitt";
// 路由守卫
import "./permission.js";
// 通过添加 passive，来阻止 touchstart 事件，让页面更加流畅。
import "default-passive-events";
// Element 中文
import locale from 'element-plus/lib/locale/lang/zh-cn' 
// 全局过滤
import filters from './filters/index.js'

// 引入全局可用阿里图标样式文件
import './assets/iconfont/iconfont.css'
// 引入全局可用阿里图标js文件
import './assets/iconfont/iconfont.js'

const app = createApp(App).use(router).use(createPinia()).use(ElementPlus,{locale});
app.config.globalProperties.filters = filters
app.config.globalProperties.$get = http.get;
app.config.globalProperties.$post = http.post;
app.config.globalProperties.$mitt = mitt();

// 全局组件
// 面包屑
import cBreadcrumb from '@/components/Breadcrumb/index.vue'
app.component('cBreadcrumb',cBreadcrumb)
// 主要模板
import cMainTemplate from '@/components/Template/MainTemplate.vue'
app.component('cMainTemplate',cMainTemplate)
// Table模板
import cTableTemplate from '@/components/Template/TableTemplate.vue'
app.component('cTableTemplate',cTableTemplate)
// Page模板
import cPageTemplate from '@/components/Template/PageTemplate.vue'
app.component('cPageTemplate',cPageTemplate)

// 金钱输入框
import cMoneyInput from '@/components/Form/MoneyInput.vue'
app.component('cMoneyInput',cMoneyInput)
// 数字输入框
import cNumberInput from '@/components/Form/NumberInput.vue'
app.component('cNumberInput',cNumberInput)
// 车辆信息下拉框
import cVehicleSelect from '@/components/Form/VehicleSelect.vue'
app.component('cVehicleSelect',cVehicleSelect)
// 港口信息下拉框
import cPortSelect from '@/components/Form/PortSelect.vue'
app.component('cPortSelect',cPortSelect)
// 阿里图库
import cIcon from '@/components/Icon/index.vue'
app.component('cIcon',cIcon)
app.mount("#app");
